package com.xspace.android.xafcommon.util.commonUtil;

import android.content.Context;
import android.content.Intent;

import com.xspace.android.xafcommon.util.LogUtil;

import java.util.List;


public class ModuleManager {
    public static ModuleManager manager;

    public static ModuleManager getInstance() {
        if (manager == null)
            manager = new ModuleManager();
        return manager;
    }

    public ModuleManager() {
        if (moduleList == null)
            moduleList = PullParserUtils.ParseModelContent("module_config");
    }

    private List<ModuleBean> moduleList;

    public void JumpToAct(Intent intent, Context context, String className) {
        LogUtil.i("ChatModelManager",
                "JumpToChat className:" + className + " intent null:" + (intent == null) + "context:" + context);
        try {
            Class.forName(className);
            intent.setClassName(context, className);
            context.startActivity(intent);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    //需要一个获取显示类的全名的方式 从服务器获取 我传入类的key 回传可能是 类的另一个界面 这个全名可以和类key有一些变化
    public ModuleBean getModuleBeanByClassNamekey(String classKey) {
        if (moduleList == null) {
            moduleList = PullParserUtils.ParseModelContent("module_config");
        }
        ModuleBean targetBean = new ModuleBean();
        boolean isSelected = false;
        for (ModuleBean bean : moduleList) {
            if (bean.getClassList() != null) {
                for (ModuleBean.ToClass classBean : bean.getClassList()) {
                    if (classKey.equals(classBean.getKey())) {
                        isSelected = true;
                        targetBean = bean;
                        break;
                    }
                    if (isSelected)
                        break;
                }
            }

        }
        return targetBean;
    }

    //
    //	public Intent getIntentByClassName(Context context, String className) {
    //		Intent intent = new Intent();
    //		try {
    //			className = getClassNameByClassNamekey(className);
    //			Class.forName(className);
    //			intent.setClassName(context, className);
    //		} catch (Exception e) {
    //			// TODO Auto-generated catch block
    //			e.printStackTrace();
    //		}
    //		return intent;
    //	}
    //
    //	public String getMainClassName() {
    //		// return "cn.xspace.app.imchat.SingleChatActivty";
    //		// return "cn.xspace.app.imchat.GroupChatActivity";
    //		return "cn.xspace.app.imchat.activity.AddressbookUnion";
    //
    //	}
    //
    //	public void jumpToChat(UnionFriendsBean ufb, Context mContext) {
    //		if (ufb == null)
    //			return;
    //		String bjid = ufb.getId();
    //		String name = ufb.getName();
    //		String phone = ufb.getPhone();
    //		String photo = ufb.getIconUrl();
    //		jumpToChat(bjid, phone, name, photo, 0, mContext);
    //	}
    //
    //	public void jumpToChat(Friend info, Context mContext) {
    //		if (info == null)
    //			return;
    //		String bjid = info.mBarejid;
    //		String name = info.mName;
    //		String phone = info.mMobile;
    //		String photo = info.mAvatar;
    //		jumpToChat(bjid, phone, name, photo, 1, mContext);
    //	}
    //
    //	public void jumpToChat(String bjid, String phone, String name, String userIcon, int status, Context mContext) {
    //		if (!getInstance().isContainSinglechat())
    //			return;
    //		Intent intent = new Intent();
    //		intent.putExtra(AppConstant.INTENT_PARAM_USER_ADDRESS, bjid);
    //		if (!StringUtils.isNull(name)) {
    //			intent.putExtra(AppConstant.INTENT_PARAM_USER_NAME, name);
    //		} else if (!TextUtils.isEmpty(phone)) {
    //			intent.putExtra(AppConstant.INTENT_PARAM_USER_NAME, phone);
    //		}
    //		if (!TextUtils.isEmpty(userIcon)) {
    //			intent.putExtra(AppConstant.INTENT_PARAM_USER_HREAD, userIcon);
    //		}
    //		intent.putExtra("userStatus", status);
    //		String className = ChatModelManager.getInstance().getClassNameByClassNamekey("SingleChat");
    //		ChatModelManager.getInstance().JumpToAct(intent, mContext, className);
    //	}
    //
    //	public void jumpToFriendDetail(UnionFriendsBean ufb, Context mContext) {
    //		if (ufb == null)
    //			return;
    //		//	     Intent intent=new Intent();
    //		//	       String bjid=ufb.getId();
    //		//	        if(!bjid.contains("@")){
    //		//	        	bjid=bjid+"@42.120.48.75";
    //		//	        }
    //		//	        intent.putExtra(AppConstant.INTENT_PARAM_USER_CONTACT, bjid);
    //		//	        if(!TextUtils.isEmpty(ufb.getPhone()))
    //		//	        intent.putExtra("phone", ufb.getPhone());
    //		//	        intent.putExtra("name", ufb.getName());
    //		//	        intent.putExtra("uuid", ufb.getId());
    //		//	        intent.putExtra("photoUrl", ufb.getIconUrl());
    //		//	        String className=ChatModelManager.getInstance().getClassNameByClassNamekey("FriendDetailAct");
    //		//			ChatModelManager.getInstance().JumpToAct(intent, mContext, className);
    //		jumpToFriendDetail(ufb.getId(), ufb.getPhone(), ufb.getName(), ufb.getId(), ufb.getIconUrl(), mContext);
    //	}
    //
    //	public void jumpToFriendDetail(String bjid, String phone, String name, String uuid, String photoUrl,
    //			Context mContext) {
    //		if (TextUtils.isEmpty(bjid))
    //			return;
    //		Intent intent = new Intent();
    //		if (!bjid.contains("@")) {
    //			bjid = bjid + "@42.120.48.75";
    //		}
    //		intent.putExtra(AppConstant.INTENT_PARAM_USER_CONTACT, bjid);
    //		if (!TextUtils.isEmpty(phone))
    //			intent.putExtra("phone", phone);
    //		intent.putExtra("name", name);
    //		intent.putExtra("uuid", uuid);
    //		intent.putExtra("photoUrl", photoUrl);
    //		String className = ChatModelManager.getInstance().getClassNameByClassNamekey("FriendDetailAct");
    //		ChatModelManager.getInstance().JumpToAct(intent, mContext, className);
    //
    //	}
}
